package com.lanchetech.admin.service;


import com.lanchetech.bean.request.AdminRolePermissionReq;
import com.lanchetech.bean.request.PageReq;
import com.lanchetech.bean.request.SysLogReq;
import com.lanchetech.bean.request.UpdatePasswordReq;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.BaseResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.vo.AdminDetailVO;
import com.lanchetech.entity.Admin;
import com.lanchetech.entity.AdminPermission;
import com.lanchetech.entity.AdminRole;
import com.lanchetech.entity.SysLog;

import java.util.List;

public interface AdminService {
    ResultData<AdminDetailVO> getAdminDetail(Admin admin);

    ResultData<List<AdminPermission>> getAdminPermissions(Admin admin);

    ResultData<BasePageResp<AdminRole>> getAdminRolePage(PageReq req);

    BaseResp updatePassword(Admin admin, UpdatePasswordReq req);

    BaseResp editAdminRole(AdminRole adminRole);

    BaseResp deleteAdminRole(Long id);

    ResultData<List<AdminPermission>> getAdminRolePermissionList(Long id);

    ResultData<List<AdminPermission>> getAllPermissionList();

    BaseResp updateAdminRolePermission(AdminRolePermissionReq req);

    ResultData<BasePageResp<Admin>> getAdminPage(PageReq req);

    ResultData<List<Admin>> getAdminList(PageReq req);

    ResultData<List<AdminRole>> getAdminRoleList();

    BaseResp editAdmin(Admin admin, Admin req);

    BaseResp deleteAdmin(Admin admin, Long id);

    BaseResp resetAdminPassword(Long id);

    ResultData<Admin> queryAdminDetail(Long id);

    ResultData<BasePageResp<SysLog>> getSysLogPage(SysLogReq req);

    ResultData<List<Admin>> getPermissionAdmin(Long id);
}